An analog audio signal can be converted to a discrete digital representation by a technique known as sampling. The sampling rate is the number of samples per second (or other unit) taken from the analog signal in order to create the digital representation or “digital audio”. Samples are typically stored as a series of numbers representing the signal amplitudes at the points in time at which the samples were taken. For example, FIG. 1A illustrates an analog signal 102 which is sampled eight times per second. Three sample points are shown at 104a-c. FIG. 1B illustrates the same analog signal 102 but with an increased sampling rate of sixteen times per second. Three sample points are also shown at 108a-c. In general, an audio signal sampled at a faster sampling rate will allow for better reconstruction of a signal containing a higher maximum frequency component when the digital audio is converted back into an analog signal. Higher sampling rates, however, require faster digital processing speeds, which put demands on computer processing resources and memory.
In constrained devices such as such as mobile phones and personal data assistants, for example, playback of digital audio is typically only supported for particular sampling rate(s). This can be due to the limited processing capabilities of the devices, lack of audio hardware support, or lack of software support. Some approaches to this problem involve republishing the digital audio in supported sampling rates or server-side conversion of digital audio to supported sampling rates. But some content may not be able to be republished because the original project files are not available. Furthermore, server-side conversion of digital audio can be impractical for a large volume of traffic.
Software applications for some constrained devices can accommodate unsupported sampling rates by re-sampling uncompressed digital audio at a sampling rate that the device supports. By way of illustration and with reference to FIG. 2, a source 200 containing compressed digital audio is provided to a playback environment 204 for device 202. The digital audio in source 200 is decompressed by codec 206 into decompressed audio 208. If the playback environment 204 supports the sampling rate of the decompressed audio 208, the decompressed digital audio 208 can be converted back into an analog signal and outputted to one or more speakers 220 or provided as output signals. If the decompressed audio 208 was encoded at an unsupported sampling rate, the decompressed audio can be converted to the supported sampling rate by an application sample rate converter 210 that re-samples the decompressed audio 208 at the supported sampling rate. However, re-sampling digital audio can introduce noise, particularly when increasing the sampling rate, and can reduce the maximum frequency that can be completely reconstructed into the analog signal when converting a source signal to a slower sampling rate output signal.